# Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/

CC = cl6x
CLIB_INC = $(C_DIR)/include
STRIP = strip6x
PRELINK = prelink6x

HOST_PRFX = C60
HOST_EXT = 6x

AS = cl6x
ifeq ($(DEVICE),C6670)
DEVICE_NUM = 6670
C_OPTS = -DDEVICE=6670 ## Turbo Nyquist 
C_OPTS += -mv6600  
A_OPTS += -mv6600
else
ifeq ($(DEVICE),C6678)
DEVICE_NUM = 6678
C_OPTS = -DDEVICE=6678 ## Shannon 
C_OPTS += -mv6600  
A_OPTS += -mv6600
else
DEFAULT:
	@echo "Device '$(DEVICE)' not supported"
	@exit 1
endif
endif

TARGET_NAME = bin/norwriter_evm$(DEVICE_NUM)l.out

C_OPTS += -g ## Enable debugging  
C_OPTS += -ss ## interlist C source and optimizer with .asm source
C_OPTS += -ml3  ## Far memory model
C_OPTS += -k  ## Keep .asm files
ifeq ($(ENDIAN),big)
C_OPTS+= -me ## Big Endian
endif
C_OPTS += -pds67
C_OPTS += --abi=elfabi
ifeq ($(ENDIAN),big)
A_OPTS += -me
endif
A_OPTS += --abi=elfabi
OUTPUT_FILE_OPTION = --output_file
LNK_OPTS += -z norwriter.cmd -m bin/norwriter_evm$(DEVICE_NUM)l.map --dynamic
LNK_OPTS += -l $(C_DIR)/lib/rts6600_elf.lib
LNK_OPTS += -l $(PFORM_LIB_DIR)/evmc$(DEVICE_NUM)l/platform_lib/lib/debug/ti.platform.evm$(DEVICE_NUM)l.ae66
LNK_OPTS += --reread_libs --rom_model

OBJ_DIR = obj
PFORM_LIB_INC = $(PFORM_LIB_DIR) 
SRCDIR = ../src

SRC_FILES = norwriter.c 

VPATH = $(SRCDIR)
INCL = -I $(CLIB_INC) $(patsubst %,-I%,$(VPATH)) -I $(PFORM_LIB_DIR)/../../ -I $(PFORM_LIB_DIR) -I ../include

OBJS = $(patsubst %.c,$(OBJ_DIR)/%.obj,$(filter %.c, $(SRC_FILES)))
OBJS += $(patsubst %.s,$(OBJ_DIR)/%.obj,$(filter %.s, $(SRC_FILES)))

all: $(TARGET_NAME)

$(TARGET_NAME): $(OBJS) norwriter.cmd
	$(CC) $(C_OPTS) $(OBJS) $(LNK_OPTS) -o $@ 

$(OBJ_DIR)/%.obj: %.c $(HEADERS) $(OBJ_DIR)/.created
	$(CC) -c $(C_OPTS) $(INCL) $(DEFINE_TARGET) $< $(OUTPUT_FILE_OPTION) $@

$(OBJ_DIR)/%.obj: %.s $(HEADERS) $(OBJ_DIR)/.created
	$(CC) -c $(A_OPTS) $(DEFINE_TARGET) $< $(OUTPUT_FILE_OPTION) $@

$(OBJ_DIR)/.created:
	mkdir -p $(OBJ_DIR)
	touch $(OBJ_DIR)/.created

clean:
	-rm -rf $(OBJ_DIR)
	-rm -rf *.asm

